hysop.backend.device.codegen.symbolic.expr module

class hysop.backend.device.codegen.symbolic.expr.BuiltinFunction(fname)[source]

Bases: object

class hysop.backend.device.codegen.symbolic.expr.BuiltinFunctionCall(ctype, fname, *fargs)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.ComplexFloatingPointConstant(ctype, value)[source]

Bases: NumericalConstant

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.FloatingPointConstant(ctype, value)[source]

Bases: NumericalConstant

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.FunctionCall(ctype, fn, fn_kwds)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.IfElse(conditions, all_exprs, else_exprs=None)[source]

Bases: Expr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.IntegerConstant(ctype, value)[source]

Bases: NumericalConstant

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.NumericalConstant(ctype, value)[source]

Bases: TypedExpr

classmethod build(val, typegen)[source]
default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClAssignment(ctype, var, op, rhs)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClBool(expr)[source]

Bases: TypedExpr

Convert a scalar boolean condition (ie. a int in OpenCL) to a compatible vector boolean condition (ie. all bits set) prior to vectorization. Also force min integer rank.

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClCast(ctype, expr)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClConvert(ctype, expr)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClIndexedVariable(ctype, var, index)[source]

Bases: OpenClVariable

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.OpenClPrinter(typegen, codegen, settings={}, **kwds)[source]

Bases: C99CodePrinter

doprint(expr, terminate=True)[source]

Print the expression as code.

Parameters:
  • expr (Expression) – The expression to be printed.

  • assign_to (Symbol, string, MatrixSymbol, list of strings or Symbols (optional)) – If provided, the printed code will set the expression to a variable or multiple variables with the name or names given in assign_to.

class hysop.backend.device.codegen.symbolic.expr.OpenClVariable(ctype, var, *args)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.Return(expr)[source]

Bases: Expr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.TypedExpr(ctype, *args)[source]

Bases: TypedI, Expr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.TypedExprWrapper(ctype, expr)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.TypedI(*args, **kwds)[source]

Bases: object

property basetype
property btype
property components
property dtype
property is_complex
property is_fp
property is_integer
property is_positive
property is_signed
property is_unsigned
classmethod vtype(btype, n)[source]
class hysop.backend.device.codegen.symbolic.expr.TypedSymbol(ctype, **kwds)[source]

Bases: TypedI, Symbol

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

default_assumptions = {}
name: str
class hysop.backend.device.codegen.symbolic.expr.UpdateVars(srcs, dsts, ghosts)[source]

Bases: Expr

default_assumptions = {}
init(srcs, dsts, ghosts)[source]
class hysop.backend.device.codegen.symbolic.expr.VLoad(ctype, ptr, offset, dst=None, n=1, **opts)[source]

Bases: TypedExpr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.VLoadIf(cond, scalar_cond, ptr, offset, dst, n, default_value, **opts)[source]

Bases: VLoad

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.VStore(ptr, offset, data, n=1, **opts)[source]

Bases: Expr

default_assumptions = {}
class hysop.backend.device.codegen.symbolic.expr.VStoreIf(cond, scalar_cond, ptr, offset, data, n, **opts)[source]

Bases: VStore

default_assumptions = {}